package br.com.javamagazine.leilaojm.managedbean;

import java.io.Serializable;
import java.util.List;

import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import br.com.javamagazine.leilaojm.domain.Marca;
import br.com.javamagazine.leilaojm.domain.Modelo;
import br.com.javamagazine.leilaojm.ejb.ModeloService;

@Named
@RequestScoped
public class ModeloBean implements Serializable {

	private static final long serialVersionUID = -5491076120921100881L;

	@EJB
	private ModeloService modeloService;

	@Inject
	private Modelo modelo;

	private List<Modelo> listaModelos;
	private List<Marca> listaMarcas;

	public String preparaCadastroModelo() {
		listaMarcas = modeloService.listaMarcas();
		modelo = new Modelo();

		return "cadastraModelo.xhmtl";
	}

	public String cadastraModelo() {
		modeloService.salvarModelo(modelo);
		// adiciona mensagem de sucesso
		FacesMessage fm = new FacesMessage("Sucesso ao cadastrar modelo "
				+ modelo.getNome());
		fm.setSeverity(FacesMessage.SEVERITY_INFO);
		FacesContext.getCurrentInstance().addMessage("form", fm);
		modelo = new Modelo();

		return null;
	}
	
	public String listaModelosParaAvaliacoes(){
		listaModelos = modeloService.listaModelos();
		
		return "listaAvaliacoesPasso1.xhtml";
	}
	
	public String listaModelosParaAnuncio(){
		listaModelos = modeloService.listaModelos();
		
		return "cadastrarAnuncioPasso1.xhtml";
	}
	
	public Marca retornaMarcaPeloNome(String marcaSelecionada){
		for(Marca marca : listaMarcas){
			if(marca.getNome().equals(marcaSelecionada)){
				return marca;
			}
		}
		return null;
	}

	public Modelo getModelo() {
		return modelo;
	}

	public void setModelo(Modelo modelo) {
		this.modelo = modelo;
	}

	public List<Modelo> getListaModelos() {
		return listaModelos;
	}

	public void setListaModelos(List<Modelo> listaModelos) {
		this.listaModelos = listaModelos;
	}

	public List<Marca> getListaMarcas() {
		return listaMarcas;
	}

	public void setListaMarcas(List<Marca> listaMarcas) {
		this.listaMarcas = listaMarcas;
	}

	
}
